
const { User,ValidateUser } = require('../../model/user');
const bcrypt=require('bcrypt')

module.exports= async (req,res,next)=>{
   
    try{
        // 注意这是一个异步方法
         await ValidateUser(req.body)
    }catch(e){
        // 验证没有通过，（next方法只接收一个字符串参数，所以要接收两个参数需要写成对象再转为字符串）
          return next(JSON.stringify({path:'/admin/user-edit',message:e.message}))
    }
    // 在数据库中查找是否邮箱已被注册
    let user=await User.findOne({email:req.body.email});
    if(user){
        return next(JSON.stringify({path:'/admin/user-edit',message:'邮箱已被注册'}))
    }
    // 加密密码添加到数据库
    const salt=await bcrypt.genSalt(10);
    const password =await bcrypt.hash(req.body.password,salt);
    req.body.password=password;
    // 添加到数据库
    await User.create(req.body);
    res.redirect('/admin/user');

}